package com.ito.ito.areaTrabajo.modelo;

import java.io.Serializable;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name = "contenedor")
public class Contenedor implements Serializable {
	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "idContenedor", nullable = false)
	private Long id;

	@Column(name = "nombre", nullable = false)
	private String nombre;
	
	@ManyToOne(optional = true)
	@JoinTable(name = "estructura_contenedores", joinColumns = { @JoinColumn(name = "idContenedor") }, inverseJoinColumns = { @JoinColumn(name = "idEstructura") })
	private Estructura estructura;

	@OneToOne(fetch=FetchType.LAZY,cascade={CascadeType.PERSIST,CascadeType.REMOVE})
    private Componente componente;
	
//	@ManyToOne(optional=true)
//	@JoinTable(name="estructura_contenedores",joinColumns={@JoinColumn(name="idContenedor")},inverseJoinColumns={@JoinColumn(name="idEstructura")})
//	private Estructura estrucutura;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public Estructura getEstructura() {
		return estructura;
	}

	public void setEstructura(Estructura estructura) {
		this.estructura = estructura;
	}

	public Componente getComponente() {
		return componente;
	}

	public void setComponente(Componente componente) {
		this.componente = componente;
	}
//
//	public Estructura getEstrucutura() {
//		return estrucutura;
//	}
//
//	public void setEstrucutura(Estructura estrucutura) {
//		this.estrucutura = estrucutura;
//	}
}
